/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * FollowService.java
 */
package com.emm.yixun.customer.service.app;
import javax.jws.WebService;

import com.emm.yixun.common.app.*;

/**

 * [文件描述]
 * 客户操作表 
 */
@WebService
public interface CustomerServiceAppFacade {
	
	/**
	 * 新增客户,判断项目下手机号是否重复
	 * @param reqDto 新增客户请求信息
	 * @return 操作结果
	 */
	public CheckCustomerPhoneResDto checkCustomerPhone(CheckCustomerPhoneReqDto reqDto) throws Exception;
	
	/**
	 * 新增客户
	 * @param reqDto 新增客户请求信息
	 * @return 操作结果
	 */
	public AddCustomerResDto addCustomer(AddCustomerReqDto reqDto) throws Exception;

	/**
	 * 新增客户 （验证意向等级）
	 * @param reqDto
	 * @return
	 * @throws Exception
	 */
	AddCustomerIntentionResDto addCustomerIntention(AddCustomerIntentionReqDto reqDto) throws Exception;
	
	/**
	 * 修改客户
	 * @param reqDto 修改客户请求信息
	 * @return 操作结果
	 */
	public EditCustomerResDto editCustomer(EditCustomerReqDto reqDto) throws Exception;


	/**
	 * 修改客户（判断客户意向等级）
	 * @param reqDto
	 * @return
	 * @throws Exception
	 */
	EditCustomerIntentionResDto editCustomerIntention(EditCustomerIntentionReqDto reqDto) throws Exception;
	/**
	 * 查询客户详情
	 * @param reqDto 查询客户明细请求信息
	 * @return 操作结果
	 */
	public GetCustomerDetailResDto getCustomerDetail(GetCustomerDetailReqDto reqDto);
	
	/**
	 * 查询客户列表
	 * @param reqDto 查询客户列表请求信息
	 * @return 操作结果
	 */
	public GetCustomerListResDto getCustomerList(GetCustomerListReqDto reqDto);

	/**
	 * 查询客户列表(绿城 最新跟进--》暂未跟进)
	 * @param reqDto 查询客户列表请求信息
	 * @return 操作结果
	 */
	GetCustomerListResDto getCustomerListLC(GetCustomerListReqDto reqDto);
	
	/**
	 * 客户搜索列表
	 * @param reqDto 查询客户列表请求信息
	 * @return 操作结果
	 */
	public GetSearchListResDto getSearchList(GetSearchListReqDto reqDto);
	
	/**
	 * 客户新增跟进
	 * @param reqDto 新增参数
	 * @return 操作结果
	 */
	public AddFollowResDto addFollow(AddFollowReqDto reqDto);
	
	/**
	 * 查询客户跟进
	 * @param reqDto 搜索条件
	 * @return 操作结果
	 */
	public GetFollowListResDto getFollowList(GetFollowListReqDto reqDto);

	/**
	 * 查询客户是否满足意向等级
	 * 1.验证客户端传来的参数
	 * 2.验证服务器（数据库）参数
	 * @param reqDto
	 * @return
	 */
	CheckCustomerIntentionResDto checkCustomerIntention(CheckCustomerIntentionReqDto reqDto);
	
	/**
	 * 查询置业顾问
	 * @param reqDto 搜索条件
	 * @return 操作结果
	 */
	public GetConsultantListResDto getConsultantList(GetConsultantListReqDto reqDto);
	
	/**
	 * 分配置业顾问
	 * @param reqDto
	 * @return 操作结果
	 */
	public DistributionConsultantResDto distributionConsultant(DistributionConsultantReqDto reqDto);
	
	/**
	 * 获取认筹列表
	 * @param reqDto
	 * @return 操作结果
	 */
	public GetPayDepositListResDto getPayDepositList(GetPayDepositListReqDto reqDto);
	
	/**
	 * 新增认筹
	 * @param reqDto
	 * @return 操作结果
	 */
	public AddPayDepositResDto addPayDeposit(AddPayDepositReqDto reqDto) throws Exception;
	
	/**
	 * 修改认筹
	 * @param reqDto
	 * @return 操作结果
	 */
	public EditPayDepositResDto editPayDeposit(EditPayDepositReqDto reqDto) throws Exception;
	
	/**
	 * 获取认筹详情
	 * @param reqDto
	 * @return 操作结果
	 */
	public GetPayDepositDetailResDto getPayDepositDetail(GetPayDepositDetailReqDto reqDto);
	
	/**
	 * 获取认购列表
	 * @param reqDto
	 * @return 操作结果
	 */
	public GetSubscribeListResDto getSubscribeList(GetSubscribeListReqDto reqDto);
	
	/**
	 * 新增认购
	 * @param reqDto
	 * @return 操作结果
	 */
	public AddSubscribeResDto addSubscribe(AddSubscribeReqDto reqDto) throws Exception;
	
	/**
	 * 修改认购
	 * @param reqDto
	 * @return 操作结果
	 */
	public EditSubscribeResDto editSubscribe(EditSubscribeReqDto reqDto) throws Exception;
	
	/**
	 * 认购详情
	 * @param reqDto
	 * @return 操作结果
	 */
	public GetSubscribeDetailResDto getSubscribeDetail(GetSubscribeDetailReqDto reqDto);
	
	/**
	 * 查看签约列表
	 * @param reqDto 查看签约列表请求信息
	 * @return 操作结果
	 */
	public GetSignedListResDto getSignedList(GetSignedListReqDto reqDto);
	
	/**
	 * 新增签约
	 * @param reqDto 新增签约请求信息
	 * @return 操作结果
	 */
	public AddSignedResDto addSigned(AddSignedReqDto reqDto);
	
	/**
	 * 修改签约
	 * @param reqDto 修改签约请求信息
	 * @return 操作结果
	 */
	public EditSignedResDto editSigned(EditSignedReqDto reqDto);
	
	/**
	 * 查看签约详情
	 * @param reqDto 查看签约详情请求信息
	 * @return 操作结果
	 */
	public GetSignedDetailResDto getSignedDetail(GetSignedDetailReqDto reqDto);
	
	/**
	 * 查询审核列表
	 * @param reqDto 查询审核列表请求信息
	 * @return 操作结果
	 */
	public GetAuditListResDto getAuditList(GetAuditListReqDto reqDto);
	
	/**
	 * 业务审核
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public BusinessAuditResDto businessAudit(BusinessAuditReqDto reqDto);
	
	/**
	 * 查询项目下业务列表
	 * @param reqDto 查询项目下业务列表请求信息
	 * @return 操作结果
	 */
	public GetProjectBusinessListResDto getProjectBusinessList(GetProjectBusinessListReqDto reqDto);
	
	/**
	 * 查询会员成绩信息
	 * @param reqDto 查询会员成绩信息请求信息
	 * @return 操作结果
	 */
	public GetMemberScoreListResDto getMemberScoreList(GetMemberScoreListReqDto reqDto);
	
	/**
	 * 查询英雄榜信息
	 * @param reqDto 查询英雄榜信息请求信息
	 * @return 操作结果
	 */
	public GetHeroListResDto getHeroList(GetHeroListReqDto reqDto);
	
	/**
	 * 查询客户分析信息
	 * @param reqDto 查询客户分析请求信息
	 * @return 操作结果
	 */
	public GetCustomerAnalysisListResDto getCustomerAnalysisList(GetCustomerAnalysisListReqDto reqDto);
	
	/**
	 * 查询客户来访分析信息
	 * @param reqDto 查询客户来访分析请求信息
	 * @return 操作结果
	 */
	public GetCustomerVisitAnalysisListResDto getCustomerVisitAnalysisList(GetCustomerVisitAnalysisListReqDto reqDto);
	
	/**
	 * 查询工作量统计信息
	 * @param reqDto 查询工作量统计请求信息
	 * @return 操作结果
	 */
	public GetWorkloadStatisticsListResDto getWorkloadStatisticsList(GetWorkloadStatisticsListReqDto reqDto);
	
	/**
	 * 查询销售组英雄榜信息
	 * @param reqDto 查询销售组英雄榜请求信息
	 * @return 操作结果
	 */
	public GetGroupHeroListResDto getGroupHeroList(GetGroupHeroListReqDto reqDto);
	
	/**
	 * 查询下次跟进提醒列表
	 * @param reqDto 查询下次跟进提醒列表请求信息
	 * @return 操作结果
	 */
	public GetNextReminderListResDto getNextReminderList(GetNextReminderListReqDto reqDto);

	/**
	 * 查询签约已收金额
	 * @param reqDto 查询签约已收金额请求信息
	 * @return 操作结果
	 */
	public GetSignedHaveAmountResDto getSignedHaveAmount(GetSignedHaveAmountReqDto reqDto);
	
	/**
	 * 认购、签约推荐人： 客户列表
	 * @param reqDto 搜索条件
	 * @return 操作结果
	 */
	public GetRecommendCustomerListResDto getRecommendCustomerList(GetRecommendCustomerListReqDto reqDto);
	
	/**
	 * 更新客户跟进
	 * @param reqDto 跟进记录ID
	 * @return 操作结果
	 */
	public EditFollowResDto editFollow(EditFollowReqDto reqDto);
	
	/**
	 * 查询用户电话列表
	 * @param reqDto 用户id
	 * @return 操作结果
	 */
	public GetUserCallListResDto getUserCallList(GetUserCallListReqDto reqDto);
	
	/**
	 * 查询电话回拨
	 * @param reqDto 电话回拨
	 * @return 操作结果
	 */
	public GetCallBackResDto getCallBack(GetCallBackReqDto reqDto);
	
	/**
	 * 基本信息类接口（绿城扩展）
	 * 
	 * （1）项目信息全量查询接口(queryProjectInfo)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryProjectInfoResDto queryProjectInfo(QueryProjectInfoReqDto reqDto);
	
	/**
	 * 基本信息类接口（绿城扩展）
	 * 
	 * （2）经纪人信息全量查询接口接口(queryAgentInfo)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryAgentInfoResDto queryAgentInfo(QueryAgentInfoReqDto reqDto);

	/**
	 * 基本信息类接口（绿城扩展）
	 * 
	 * （3）经纪人与项目的归属关系全量查询接口(queryProjectRelationAgentInfo)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryProjectRelationAgentInfoResDto queryProjectRelationAgentInfo(QueryProjectRelationAgentInfoReqDto reqDto);

	/**
	 * 基本信息类接口（绿城扩展）
	 * 
	 * （4）客户基本信息增量更新接口(queryCustomerInfo)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryCustomerInfoResDto queryCustomerInfo(QueryCustomerInfoReqDto reqDto);
	
	/**
	 * 基本信息类接口（绿城扩展）
	 * 
	 * （5）客户跟进信息增量更新接口(queryCustomerFollowInfo)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryCustomerFollowInfoResDto queryCustomerFollowInfo(QueryCustomerFollowInfoReqDto reqDto);
	
	/**
	 * 基本信息类接口（绿城扩展POM）
	 * 
	 * （1）项目信息查询接口(queryProjectInfoPom)
	 * @param reqDto 业务审核请求信息
	 * @return 操作结果
	 */
	public QueryProjectInfoPomResDto queryProjectInfoPom(QueryProjectInfoPomReqDto reqDto);
	
	/**
	 * M2向渠道提供项目信息
	 * @author Administrator
	 *
	 */
	public MCQueryProjectResDto mcQueryProject(MCQueryProjectReqDto reqDto);
	/**
	 * M2向渠道提供客户唯一校验
	 * @author Administrator
	 *
	 */
	public MCCusUniqueResDto mcCusUniqueValidate(MCCusUniqueReqDto reqDto);
	
	/**
	 *根据dto查询记录
	 */
	public QueryProjectQuestionnaireListResDto queryQuestionnaireList(QueryProjectQuestionnaireListReqDto dto);
	
	/**
	 * 查询签约分页
	 * @param reqDto 查看签约分页请求信息
	 * @return 操作结果
	 */
	public GetSignedPageResDto getSignedPage(GetSignedPageReqDto reqDto);
	
	/**
	 * 查询认购分页
	 * @param reqDto 查看认购分页请求信息
	 * @return 操作结果
	 */
	public GetSubscribePageResDto getSubscribePage(GetSubscribePageReqDto reqDto);
	
	/**
	 * 修改首次接触方式
	 * @param reqDto 
	 * @return 操作结果
	 */
	public AddContactWayResDto addContactWay(AddContactWayReqDto reqDto);
	
	/**
	 * 获取首次接触方式
	 * @param reqDto 
	 * @return 操作结果
	 */
	public GetContactWayResDto getContactWay(GetContactWayReqDto reqDto);

	public String getRedirect(Long merchantId,String code);
}
